﻿using PmSadis.Repositories.Abstract;
using PmSadis.Models;
using System.Linq;
using PmSadis.Dal;
using System;
using System.Data.Entity;

namespace PmSadis.Repositories
{
    /// <summary>
    /// Хранилище отчетных месяцев
    /// </summary>
    public class MonthRepository : IListRepository<Month>
    {
        private ModelsContext _context = new ModelsContext();

        /// <summary>
        /// Полный список месяцев
        /// </summary>
        public IQueryable<Month> All
        {
            get
            {
                return _context.Monthes.OrderBy(x => x.Year).OrderBy(x=>x.Number);
            }
        }

        /// <summary>
        /// Удалить месяц
        /// </summary>
        /// <param name="id">Идентификатор месяца</param>
        public void Delete(object id)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// Создать или редактировать месяц
        /// </summary>
        /// <param name="month">Месяц</param>
        public object Edit(Month month)
        {
            if (month.MonthId == 0)
                _context.Entry(month).State = EntityState.Added;
            else
            {
                _context.Entry(month).State = EntityState.Modified;
            }

            _context.SaveChanges();

            return month.MonthId;
        }
    }
}
